1. Field of the Invention
The present invention relates to the field of computer software and, more particularly, to telephony application servers accessing remote resources.
2. Description of the Related Art
Speech engines can provide a multitude of different speech services, like automatic speech recognition (ASR) services, synthetic speech generation services, transcription services, language and idiom translation services, and the like. Many of these speech engines are commonly written in a low-level, compiled language, such as a C programming language, for performance reasons. Services of a speech engine can often be accessed using a provided application programming interface (API), which can also be written in a low-level compiled language. In a desktop environment, where a speech engine is typically used by a single speech application, the API serves as a simple and satisfactory interface to the speech engine.
In a distributed environment, where multiple application servers can intermittently utilize services of a speech engine, more robust interface mechanisms are needed. That is, the management of one or more speech engines in a distributed, server/middleware environment can involve complex resource management issues. A few of these issues include life cycle management, routing of requests to appropriate engines, load balancing, pooling and clustering of speech engines, remote client-server APIs, and fail-over strategies. Writing, testing, implementing, and maintaining speech engine management routines can be excessively costly.
Worse, often application server and/or speech engine interfaces and related management software can be proprietary to the vender that provides the software. Accordingly, each vender implements its own interface management routines. This is true for venders of application servers as well as venders of speech engines. Because of the different proprietary interfaces, integrating speech engines and application servers to one another can be difficult and often inefficient. Further, administrators often must have knowledge of and training using a wide gambit of different management interfaces.
What is needed is an interface technique for integrating an application server to a speech engine that standardizes and simplifies interface management functions. Better still, if the interface technique functions in a platform independent fashion, exploits infrastructure management capabilities of an application server, and can be deployed across applications written in a multitude of programming languages.